package com.openess.bigsearch.engine.utils;

import com.openess.bigsearch.engine.BTree.util.CCollection;

/**
 * 线性表的接口
 * 
 * @author TuTu
 * 
 * @param <E>
 */
public interface LList<E> extends CCollection<E> {
	boolean isEmpty();

	int length();

	E get(int index);

	E set(int index, E element);

	boolean add(int index, E element);

	/**
	 * 头插入
	 * 
	 * @param element
	 * @return
	 */
	boolean addFirst(E element);

	/**
	 * 尾插入
	 * 
	 * @param element
	 * @return
	 */
	boolean addRear(E element);

	/**
	 * 将其他集合整个插入，内部调用了集合的toArray()方法，将其转换为数组，再顺序插入
	 * 
	 * @param c
	 * @return
	 */
	boolean addAll(CCollection<?> c);

	/**
	 * 删除指定位置的数据
	 * 
	 * @param index
	 * @return
	 */
	E remove(int index);

	void clear();
}
